Users of network devices connected to networks, such as the Internet, access remote devices, such as web servers, to provide the users with information. Between the user's network device and the remote devices are various networks, PSTNs (Public Switched Telephone Network), routers, subnet devices, etc. One device that allows users to connect to a PSTN is a device referred to as a gateway (GW), or Network Access Server (NAS), which is typically a router providing various network communication protocols, such as ISDN (Integrated Services Digital Network), POTS (Plain Old Telephone System), and other modem and non-modem communication protocols. At various locations around a network are nodes, which can transmit and/or receive communications to/from other nodes on the network. Nodes include devices such as computers, routers, telephones, cell-phones, fax machines, hand-held network devices, etc., and/or software, residing on any of the aforementioned devices, and multiple software modules, in cases where software operates in parallel on a single device.
A typical GW has a fixed number of ports, one hundred, for instance. Each port allows both dial-in and dial-out service. Once a port is allocated for dial-in service, the port remains so until the connection from a node to the GW (or, more precisely, from a first node to a second node via the GW) is released. The same is true for a port allocated for dial-out service, where the port remains allocated for dial-out service until the connection from the GW to a remote network node is released. For example, a port is allocated for dial-in service when a node, such as a web browser, dials into the GW to access a remote web server to which the GW provides service. A GW port is allocated for dial-out service when connection is made from the GW to a node, such as a web server, to which the GW provides access, possibly through other nodes, such as routers.
Dial-in service is a relatively mature technology. Dial-in service technology presently allows connections to non-allocated ports to be established automatically. An example of dial-in service technology is a so-called “hunt” algorithm, which is commonly used in automated 1-800-telephone systems. When a call is received at a 1-800-service center, a non-allocated port is automatically allocated to the incoming call. This automated connectivity technology allows service providers (e.g., Internet service providers (ISPs)) to over-subscribe the number of users subscribed to access the Internet through the ISP's GW. Over-subscription of dial-in service is possible because of the mature automated connectivity technology and an assumption that not all of the subscribed users will attempt to connect through the GW at the same time. ISPs may over-subscribe dial-in service customers to GW ports by a ratio of 5, 10, 15, or more, to 1. In the event that all GW ports are being used, further dial-in customers receive a “connection failure” message, though this case has become rare due to the above-described dial-in service technology.
Dial-out service is not as mature a technology as dial-in service. In dial-out service, a GW has a static route table of nodes that are reachable by the GW. But, because the GW has a limited number of ports, GWs typically assign/reserve ports for dial-out service to specific routes or nodes. In that way, when nodes dial-in and request dial-out service to other nodes, the GW has ports available for the dial-out service.
If a PSTN network is coupled to fifty remote subnets, for example, the GW's static route table includes information to access each of the fifty remote subnets. However, because the GW has a limited number of ports, as discussed above, the ISP must make some decisions about GW configuration in order to prevent customers attempting to use dial-out service from receiving a “connection failure/remote server busy” or other such message. To this end, ISPs typically have one GW configured to provide only dial-in service and several (more than necessary) GWs to provide dial-out service.